<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>

        // 1. 构造函数的静态属性和方法
        function Demo() {
            this.username = '麻鹏辉';
            this.hello = function () {
                console.log(1);
            }
        }
        Demo.prototype.sayHi = function () {
            console.log('ok');
        }

        // 静态的属性和方法
        Demo.version = 'v1.0.0';
        Demo.fn = function () {
            console.log(100);
        }

        // 使用静态的属性或者方法
        // console.log(Demo.version);
        // Demo.fn();
        // 实例的属性或者方法用不了
        // console.log(Demo.username);
        // Demo.sayHi();

        // 实例的属性或者方法，必须要生成实例
        const d1 = new Demo();
        // console.log(d1.username);
        // d1.sayHi();
        // d1.hello();

        // console.log(d1.version);


        // 万物皆对象，所有的数据都是对象
        // 函数是一等公民，创建的实例都是借用的构造函数
        // 函数是个间谍，拥有双重身份

    </script>
</body>

</html>